package vista;

import java.awt.Color;
import java.awt.ComponentOrientation;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Graphics;
import java.util.ArrayList;
import java.util.Observable;
import java.util.Observer;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import control.ControladorEdificio;
import model.ModeloObsrvable;
import model.lugares.Edificio;

public class VistaEdificios extends VistaPanel3 implements Observer{

	/**
	 * 
	 */
	private static final long serialVersionUID = -3380544278549959547L;
	
	private ModeloObsrvable modelo;
	private VentanaPrincipal vistaP;

	public VistaEdificios(VentanaPrincipal vistaP, ModeloObsrvable modelo) {
		super();
		this.modelo = modelo;
		this.vistaP = vistaP;
		this.modelo.addObserver(this);
	}
	@Override
	public void update(Observable o, Object arg) {
		removeAll();
		repaint();
	}
	
	public void paintComponent(Graphics grafico) {
		super.paintComponent(grafico);
		setBackground(Color.black);
		vistaP.sonido.verificarQueEstaSonando();
		setLayout(new FlowLayout(FlowLayout.CENTER, 20, 40)); //20 = espacio entre botones horizontal, 40 = espacio vertical
		setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
		
		//ArrayList<JButton> botonesAAgregar= new ArrayList<JButton>();
		
		ArrayList<Edificio> edificiosDeLaCiudad=modelo.getEdificiosDeCiudadActualDePolicia();
		int i=0;
		for(i=0;i<edificiosDeLaCiudad.size();i++){
			if (getComponentCount() >= edificiosDeLaCiudad.size())
				break; //es un error pero sin esto se ponen infinitos botones no entiendo por que
			JButton botonesAAgregar = new JButton(edificiosDeLaCiudad.get(i).getNombre().toUpperCase());
			botonesAAgregar.setBackground(Color.black);
			botonesAAgregar.setForeground(Color.white);
			botonesAAgregar.setFont(new Font("Tempus Sans ITC", Font.BOLD, 30));
			botonesAAgregar.setIcon(new ImageIcon(VistaEdificios.class.getResource("/vista/imagenes/"+edificiosDeLaCiudad.get(i).getNombre()+".jpg")));
			botonesAAgregar.setIconTextGap(20);
			botonesAAgregar.addActionListener(new ControladorEdificio(vistaP, modelo,edificiosDeLaCiudad.get(i)));
			add(botonesAAgregar);
		}
		//setVisible(true);
	}
}
